// 点击区域之外，执行所在组件的某个方法
// o-clickOut="method"

export default {
    bind: function(node, directive, vnode){
        // 接受入参
        var value = directive.value;
        // 定义事件处理函数
        var listener = function(e){
            debugger
            // 如果点击的元素是el，则退出
            if(node.contains(e.originalEvent.target)){
                return false;
            }
            // 否则调用el所在组件的xx方法
            if(vnode.isComponent){
                vnode.context[value]()
            }
        };
        debugger
        // 给整个document绑定事件
        Yox.dom.on(document, 'click', listener);

        // 销毁函数
        vnode.data[directive.key] = function () {
            Yox.dom.off(document, 'click', listener);
        }
    },
    unbind: function(node, directive, vnode){
        vnode.data[directive.key]()
    }
}